package com.demo.gulimall.order.vo;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 订单确认页面所需数据
 * @author Chen Yuan
 * @create 2023-06-26  16:26
 */
@Data
@Accessors(chain = true)
public class OrderConfirmVo implements Serializable {

	// 防止重复的唯一令牌
	private String orderToken;

	// 收货地址列表
	private List<MemberAddressVo> addresses;

	// 购物车中所有选中的购物项
	private List<OrderItemVo> orderItems;

	// 发票信息

	// 会员积分信息
	private Integer integration;

	// 运费
	private BigDecimal fare;

	// 订单总额
	private BigDecimal total;

	// 应付总额
	private BigDecimal payPrice;


	public BigDecimal getTotal() {
		if (orderItems != null && orderItems.size() > 0) {
			total = orderItems.stream().map(OrderItemVo::getTotalPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
		}
		return total;
	}

	public BigDecimal getPayPrice() {
		return getTotal();
	}
}
